package com.zdkj.edge.door.demo.callback.dto;

import cn.hutool.core.collection.CollUtil;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;

import java.io.Serializable;
import java.util.List;

/**
 * 描述: 推送用户信息
 *
 * @author ZlTan
 * @date 2025/04/07 19:31
 */
@Data
public class PushDto<BaseDto> implements Serializable {
    private static final long serialVersionUID = -734440484320038807L;

    /**
     * 描述：类型person(人员)、vehicle(车辆)、personAuthorize(用户授权)、vehicleAuthorize等
     *
     * @see Type
     **/
    private String type;

    /**
     * 描述：数据列表
     **/
    private List<BaseDto> dataList;

    /**
     * 描述：权限列表
     **/
    private List<BaseDto> authorityList;

    /**
     * 描述： 兼容数据
     *
     * @return {@link List<BaseDto> }
     * @author ZlTan
     * @date 2025/4/8 星期二 11:18
     **/
    public List<BaseDto> getDataList() {
        if (CollUtil.isEmpty(dataList)) {
            return authorityList;
        }
        return dataList;
    }



    @Getter
    @AllArgsConstructor
    public enum Type {
        person, vehicle, personAuthorize, vehicleAuthorize

    }

}
